// -*- IDL -*-
/** @file      LaserRangeSensorData.idl
 *  @brief     OutPort interface
 *  @author    SEC
 *  @copyright Copyright(c) Systems Engineering Consultants Co.,LTD.
 *             All rights reserved.
 *  @note       
 */

#ifndef __LASER_RANGE_SENSOR_DATA_IDL__
#define __LASER_RANGE_SENSOR_DATA_IDL__

#include "BasicDataType.idl"

#pragma prefix "sec.co.jp"

module SensorRTC {

  module LaserRangeSensor {

    module idl {

      /** @brief Measured Data and Information */
      struct MeasuredData
      {
        float startPosition;      // start position (degree) ( ex. 0.0 )
        float endPosition;        // end position (degree) ( ex. 180.0 )
        long scanInterval;        // スキャン間引き数
        long dataGroupingNumber;  // まとめるステップ数
        sequence<long> distance;  // distance data of each position
        float dataInterval;       // degree interval between data ( ex. 0.5 )
        string  sensorState;      // sensor state ( ex. "NORMAL", "UPDATED" )
      };
      
      /** @brief Measured Data and Information with Timestamp */
      struct TimedMeasuredData
      {
        RTC::Time    tm;          // Timestamp( sec, nsec )
        MeasuredData data;
      };
      
    }; // end of module idl

  }; // end of module LaserRangeSensor

}; // end of module SensorRTC

#endif // __LASER_RANGE_SENSOR_DATA_IDL__

